//
//  BtcCreateSignTransactionParams.cpp
//  Test
//
//  Created by xgc on 12/21/17.
//  Copyright © 2017 xgc. All rights reserved.
//

#include "BtcCreateSignTransactionParams.hpp"

BtcCreateSignTransactionParams::BtcCreateSignTransactionParams(BtSeed btSeed, string fromAddress, string sendAddress, uint64_t sendValue,
                               uint64_t feePerKb, vector<BtcvoutForm> btcvoutFormList, string password)
{
    this->btSeed = btSeed;
    this->fromAddress = fromAddress;
    this->sendAddress = sendAddress;
    this->sendValue = sendValue;
    this->btcvoutFormList = btcvoutFormList;
    this->password = password;
    this->recipientsPayFees = false;
    this->txType = TxType::TX_NONE;
}

BtcCreateSignTransactionParams::BtcCreateSignTransactionParams(string fromAddress, string sendAddress, uint64_t sendValue,
                               uint64_t feePerKb, vector<BtcvoutForm> btcvoutFormList, string priKey)
{
    this->fromAddress = fromAddress;
    this->sendAddress = sendAddress;
    this->sendValue = sendValue;
    this->btcvoutFormList = btcvoutFormList;
    this->priKey = priKey;
    this->recipientsPayFees = false;
    this->txType = TxType::TX_NONE;
}

BtSeed BtcCreateSignTransactionParams::getBtSeed()
{
    return btSeed;
}

string BtcCreateSignTransactionParams::getFromAddress()
{
    return fromAddress;
}

string BtcCreateSignTransactionParams::getSendAddress()
{
    return sendAddress;
}

uint64_t BtcCreateSignTransactionParams::getSendValue()
{
    return sendValue;
}

uint64_t BtcCreateSignTransactionParams::getFeePerKb()
{
    return feePerKb;
}

string BtcCreateSignTransactionParams::getPassword()
{
    return password;
}

string BtcCreateSignTransactionParams::getPriKey()
{
    return priKey;
}

vector<BtcvoutForm> BtcCreateSignTransactionParams::getBtcvoutFormList()
{
    return btcvoutFormList;
}

bool BtcCreateSignTransactionParams::getRecipientsPayFees()
{
    return recipientsPayFees;
}

void BtcCreateSignTransactionParams::setBtSeed(BtSeed btSeed)
{
    this->btSeed = btSeed;
}

void BtcCreateSignTransactionParams::setFromAddress(string fromAddress)
{
    this->fromAddress = fromAddress;
}

void BtcCreateSignTransactionParams::setSendAddress(string sendAddress)
{
    this->sendAddress =  sendAddress;
}

void BtcCreateSignTransactionParams::setSendValue(uint64_t sendValue)
{
    this->sendValue = sendValue;
}

void BtcCreateSignTransactionParams::setFeePerKb(uint64_t feePerKb)
{
    this->feePerKb = feePerKb;
}

void BtcCreateSignTransactionParams::setPassword(string password)
{
    this->password = password;
}

void BtcCreateSignTransactionParams::setPriKey(string priKey)
{
    this->priKey = priKey;
}

void BtcCreateSignTransactionParams::setBtcvoutFormList(vector<BtcvoutForm> btcvoutFormList)
{
    this->btcvoutFormList = btcvoutFormList;
}

void BtcCreateSignTransactionParams::setRecipientsPayFees(bool recipientsPayFees)
{
    this->recipientsPayFees = recipientsPayFees;
}

vector<uint8_t> BtcCreateSignTransactionParams::getData()
{
    return data;
}

void BtcCreateSignTransactionParams::setData(vector<uint8_t> data)
{
    this->data = data;
}

TxType BtcCreateSignTransactionParams::getTxType()
{
    return this->txType;
}

void BtcCreateSignTransactionParams::setTxType(TxType txType)
{
    this->txType = txType;
}